#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL.Math;
namespace Cephei.QL.Methods.Finitedifferences
{
    /// <summary> 
	/// ! A shout option is an option where the holder has the right to lock in a minimum value for the payoff at one (shout) time during the option's life. The minimum value is the option's intrinsic value at the shout time.
	/// </summary>
    [Guid ("16E8BF79-0650-4e55-9818-39D2A5726D38"),ComVisible(true)]
	public interface IShoutCondition 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        /// <summary> 
		/// 
		/// </summary>
		 IShoutCondition ApplyTo(Cephei.QL.Math.IArray a, Double t);
    }   

    /// <summary> 
	/// ! A shout option is an option where the holder has the right to lock in a minimum value for the payoff at one (shout) time during the option's life. The minimum value is the option's intrinsic value at the shout time. Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IShoutCondition_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IShoutCondition Create (Cephei.QL.Math.IArray intrinsicValues, Double resTime, Double rate);
        /// <summary> 
		/// 
		/// </summary>
	    IShoutCondition Create (QL.Option.TypeEnum type, Double strike, Double resTime, Double rate);
    }
}

